﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISaf.cs" company="Collaboris Ltd.">
//   Copyright (c) Collaboris Ltd. All rights Reserved.
// </copyright>
// <summary>
//   
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace Collaboris.Saf.Agent
{
    using System.ServiceModel;

    using Collaboris.Saf.Engine;

    using Collaboris.Saf.Engine.Report;

    [ServiceContract]
    public interface ISaf
    {
        /// <summary>
        /// Runs the macro based on a String Representation of
        /// a Macro defined using the Spring IOC Schema.
        /// </summary>
        /// <param name="contextUrl">The context URL.</param>
        /// <param name="mode">The ProcessMode specifying whether the Macro is Do or Undo.</param>
        /// <param name="macroXml">The macro XML.</param>
        /// <returns>A MacroReport containing the outcome of running the action.</returns>
        [OperationContract]
        MacroReport RunMacro(string contextUrl, ProcessMode mode, string macroXml);
    }
}
